//
//  DMDomainManager.h
//  DualMediationSDK
//
//  Created by DualMediation on 2024/01/17.
//  Copyright © 2024 DualMediation. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/**
 * 域名类型枚举
 * 用于区分不同业务模块的域名配置
 */
typedef NS_ENUM(NSInteger, DMDomainType) {
    DMDomainTypeAdStrategy = 0,     // 广告策略
    DMDomainTypeProductStrategy,    // 产品策略
    DMDomainTypeLogin,              // 登录接口
    DMDomainTypeInAppPurchase       // 内购支付
};

/**
 * 域名管理器
 * 统一管理不同业务模块的域名配置，支持生产环境和测试环境的切换
 */
@interface DMDomainManager : NSObject

/**
 * 当前环境状态
 * YES: 测试环境, NO: 生产环境
 */
@property (nonatomic, readonly) BOOL isDebugMode;

/**
 * 获取域名管理器单例
 * @return 域名管理器实例
 */
+ (instancetype)sharedManager;

/**
 * 获取指定业务类型的域名
 * @param type 业务类型
 * @return 对应的域名URL
 */
- (NSString *)domainForType:(DMDomainType)type;

/**
 * 切换到生产环境
 * 所有业务模块将使用生产环境的域名
 */
- (void)switchToProduction;

/**
 * 切换到测试环境
 * 所有业务模块将使用测试环境的域名
 */
- (void)switchToDebug;

/**
 * 获取当前环境描述
 * @return 环境描述字符串
 */
- (NSString *)currentEnvironmentDescription;

@end

NS_ASSUME_NONNULL_END